Currently, there are program products available for personal computers which allow the user to produce an audiovisual presentation or to add images and audio to other applications for presentation purposes. Such program products enable the display of real images with high quality sound, text, graphics, animation and other special effects. In utilizing the personal computer to assemble such presentation packages, the user must often provide for picture-to-picture transition (e.g. dissolves), for overlays of one image upon another (e.g. animation) and for other applications wherein portions of one image are transparent in relation to an underlying image, both images being superimposed during preparation of the presentation.
As is known, to enable the creation of such presentations requires the movement of various "screens" of data from one place to another within the PC. A screen of data is an image in memory that is viewable by the user on the display. In essence the screen is comprised of a block of data which, when inserted into the display, enables it to show the image on a CRT or other presentation device.
PC memories are often not designed to interface readily with sophisticated graphic display units For instance, many PC random access memories (RAMs) are organized on a bit-planar basis with each respective bit of a byte or word resident in a plurality of planes in correspondingly aligned bit positions. Such PC/RAM organization are useful for data processing applications where predetermined blocks of data are accessed and handled. However, when it is necessary to access a block of data, where the block may have any starting point and any end point, and to transfer such block of data into a display memory at a starting point chosen by the user, such an operation can be accomplished but generally slowly.
Block data transfers are encountered in display applications where it is desirable to insert in a display memory, a new screen of data in place of or superimposed over a pre-existing screen. In the case of such data transfers, the system must access a data unit corresponding to a first picture element (Pel) and then continue accessing data units until the last Pel is retrieved. The accessed data units must be aligned so that they are properly justified when inserted into the display memory. This allows optimum use of the display memory's capacity In certain cases, it is desirable that portions of the inserted screen be "transparent", so that corresponding portions of the preexisting screen are not obscured when the new screen is written over the preexisting screen.
Many PC/RAMs are accessible on only a byte or larger data unit basis, so if the initial Pel starts in the interior of a byte, the Pel must be extracted from the byte, aligned and then transferred. All of this is preferably done with a minimum number of memory accesses to avoid the delays inherent therein.
In the referenced co-pending applications, methods are disclosed therein for enabling extremely rapid transfers of blocks of data through a window buffer that forms the main gateway to and from a display memory. There is no provision in the aforementioned methods for coping with the question of image transparency.
In U.S. Pat. No. 4,616,336 to Robertson et al, assigned to the same assignee as this application, the matter of image overlays is addressed Robertson et al disclose a word processing system wherein alphanumeric data can be overlaid on a graphics image. The system merges the alphanumeric's over the graphics and elects to display the non-blank image at each screen area, with conflicts being resolved in favor of the alphanumerics. Robertson et al do not contemplate or teach how to accomplish an image overlay, as the foreground image is being transferred to the background image memory and is in the process of being reformatted to match the background image memory.
Accordingly, it is an object of this invention to provide a method and means for block data transfers wherein one block is written over another only in selected areas.
It is another object of this invention to provide a rapid method and means for screen data transfer wherein one screen has transparent portions and is written over a background screen.
Still another object of this invention is to provide a rapid method and means for display data transfers between memories through a window buffer wherein the transfer accomplishes alignment and transparency tests in a rapid fashion.